package com.jyw.business.ins.service;

import java.util.List;

import com.jyw.business.ast.domain.dto.web.AstItemPageDto;
import com.jyw.business.ast.domain.vo.web.AstItemPageVo;
import com.jyw.business.ins.domain.InsConfigItem;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jyw.business.ins.domain.dto.web.ItemListDto;
import com.jyw.business.ins.domain.dto.web.UnitItemPageDto;
import com.jyw.business.ins.domain.vo.web.InsPlanItemVO;
import com.jyw.business.ins.domain.vo.web.ItemListVo;
import com.jyw.business.ins.domain.vo.web.UnitItemPageVo;

/**
 * 巡检配置项Service接口
 * 
 * @author system
 * @date 2023-09-20
 */
public interface IInsConfigItemService extends IService<InsConfigItem>
{
    /**
     * 查询巡检配置项
     * 
     * @param id 巡检配置项主键
     * @return 巡检配置项
     */
    public InsConfigItem selectInsConfigItemById(Long id);

    /**
     * 查询巡检配置项列表
     * 
     * @param insConfigItem 巡检配置项
     * @return 巡检配置项集合
     */
    public List<InsConfigItem> selectInsConfigItemList(InsConfigItem insConfigItem);

    /**
     * 查询巡检配置项
     *
     * @param parentId
     * @param parentType
     * @return
     */
    List<InsPlanItemVO> getItemList(Long parentId,Integer parentType);

    /**
     * 新增巡检配置项
     * 
     * @param insConfigItem 巡检配置项
     * @return 结果
     */
    public int insertInsConfigItem(InsConfigItem insConfigItem);

    /**
     * 修改巡检配置项
     * 
     * @param insConfigItem 巡检配置项
     * @return 结果
     */
    public int updateInsConfigItem(InsConfigItem insConfigItem);

    /**
     * 批量删除巡检配置项
     * 
     * @param ids 需要删除的巡检配置项主键集合
     * @return 结果
     */
    public int deleteInsConfigItemByIds(Long[] ids);

    /**
     * 删除巡检配置项信息
     * 
     * @param id 巡检配置项主键
     * @return 结果
     */
    public int deleteInsConfigItemById(Long id);

    /**
     * 当前巡检项查询
     * @param dto
     * @return
     */
    List<ItemListVo> list(ItemListDto dto);

    /**
     * 配置项资产查询
     * @param dto
     * @return
     */
    List<AstItemPageVo> astList(AstItemPageDto dto);

    /**
     * 配置项巡检单元查询
     * @param dto
     * @return
     */
    List<UnitItemPageVo> unitList(UnitItemPageDto dto);
}
